<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<style>
    .box {
        width: 500px;
        height: 400px;
        border: 1px solid #000;
        position: relative;
        margin: auto;
        overflow: hidden;
        cursor: pointer;
    }

    .box ul,
    .box ol {
        list-style: none;
        padding: 0;
        margin: 0;
    }

    .box ul li {
        width: 500px;
        height: 400px;
        display: none;
    }

    .box ul li img {
        width: 500px;
        height: 400px;
    }

    .box ol {
        width: 120px;
        position: absolute;
        left: 50%;
        margin-left: -40px;
        bottom: 20px;
        height: 20px;
        background: #fff;
        display: flex;
        justify-content: space-evenly;
        padding: 10px 0;
        border-radius: 20px;
    }

    .box ol li {
        width: 20px;
        height: 20px;
        border-radius: 50%;
        background: #f00;
        border: 1px solid #999;
    }

    .box ol li.current {
        background: #00f;
    }

    .box ul li.current {
        display: block;
    }

    .box .left,
    .box .right {
        position: absolute;
        top: 50%;
        width: 30px;
        height: 30px;
        margin-top: -15px;
        background: #ccc;
        text-align: center;
        line-height: 30px;
        text-decoration: none;
        font-weight: bold;
        color: #fff;
    }

    .left {
        left: 0;
    }

    .right {
        right: 0;
    }
</style>

<body>
    <div class="box">
        <ul>
            <li class="current"><img src="images/托尔0.jpg" /></li>
            <li><img src="images/托尔1.jpg" /></li>
            <li><img src="images/托尔2.jpg" /></li>
            <li><img src="images/托尔3.jpg" /></li>
        </ul>
        <ol>
            <li class="current"></li>
            <li></li>
            <li></li>
            <li></li>
        </ol>
        <a href="javascript:;" class="left">&lt;</a>
        <a href="javascript:;" class="right">&gt;</a>
    </div>
</body>
<script type="text/javascript">
    /*
        实现功能
        1、自动切换图片 保证小圆点跟随
        2、上一张下一张点击切换图片  小圆点也需要跟随
        3、点击小圆点 切换到对应的图片
    */
    let timer;
    let index = 0;
    let ulLiList = document.querySelectorAll('ul li')
    let olLiList = document.querySelectorAll('ol li')
    let leftBtn = document.querySelector('.left')
    let rightBtn = document.querySelector('.right')
    let box = document.querySelector('.box')
    function init(index) {
        timer = setInterval(() => {
            index++
            index = index == ulLiList.length ? 0 : index
            show(index)
        }, 1000);
    }
    init(index)
    box.addEventListener('mouseover', () => {
        clearInterval(timer)
    })
    box.addEventListener('mouseout', () => {
        init(index)
    })
    leftBtn.addEventListener('click', e => {
        index = index == 0 ? ulLiList.length : index
        index--
        show(index)
    })
    rightBtn.addEventListener('click', e => {
        index++
        index = index == ulLiList.length ? 0 : index
        show(index)
    })

    olLiList.forEach(v => {
        v.addEventListener('click', e => {
            index = [...olLiList].indexOf(v)
            show(index)
        })
    });

    // 渲染页面
    function show(index) {
        ulLiList.forEach(v => v.className = '')
        olLiList.forEach(v => v.className = '')
        ulLiList[index].className = 'current'
        olLiList[index].className = 'current'
    }

</script>

</html>